/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.loja.model.entity.transacao.impl;

import javax.persistence.Entity;

import javax.persistence.OneToOne;
import br.com.loja.model.entity.despesa.Cartao;
import br.com.loja.model.entity.transacao.PagamentoVenda;
import br.com.loja.model.entity.venda.Venda;
import br.com.loja.model.service.exception.ServiceException;

/**
 *
 * @author David Luiz
 */
@Entity
public class PagamentoVendaCartao extends PagamentoVenda {

    @OneToOne
    private Cartao cartao;

    public PagamentoVendaCartao() {
        super();
    }

    public PagamentoVendaCartao(Venda venda, Cartao cartao) throws ServiceException {
        super(venda);

        if (cartao == null) {
            throw new IllegalArgumentException("Cartao invalido");
        }

        this.cartao = cartao;
        setFavorecida(cartao.getOperadora().getCreditos());
        setHistorico("PAGAMENTO DE VENDA COM CARTAO DE" + cartao.getTipo().getLabel().toUpperCase());

    }

    /**
     * @return the cartao
     */
    public Cartao getCartao() {
        return cartao;
    }

    /**
     * @param cartao the cartao to set
     */
    public void setCartao(Cartao cartao) {
        this.cartao = cartao;
    }

}
